package br.com.unip.menudroidweb.facade;

import java.io.Serializable;
import java.util.List;
import br.com.unip.menudroidweb.model.Usuario;
import br.com.unip.menudroidweb.dao.UsuarioDAO;

public class UsuarioFacade implements Serializable {
	private static final long serialVersionUID = -7914066672489151023L;
	private UsuarioDAO usuarioDAO = new UsuarioDAO();

	public void createUsuario(Usuario usuario) {
		usuarioDAO.beginTransaction();
		usuarioDAO.save(usuario);
		usuarioDAO.commitAndCloseTransaction();
	}

	public void updateUsuario(Usuario usuario) {
		usuarioDAO.beginTransaction();
		Usuario persistedUsuario = usuarioDAO.find(usuario.getIdUsuario());
		persistedUsuario.setNome(usuario.getNome());
		persistedUsuario.setAbreviacao(usuario.getAbreviacao());
		persistedUsuario.setSenha(usuario.getSenha());
		persistedUsuario.setDataNascimento(usuario.getDataNascimento());
		persistedUsuario.setEmpresa(usuario.getEmpresa());
		usuarioDAO.update(persistedUsuario);
		usuarioDAO.commitAndCloseTransaction();
	}

	public Usuario findUsuario(int usuarioId) {
		usuarioDAO.beginTransaction();
		Usuario usuario = usuarioDAO.find(usuarioId);
		usuarioDAO.closeTransaction();
		return usuario;
	}

	public List<Usuario> listAll() {
		usuarioDAO.beginTransaction();
		List<Usuario> usuario = usuarioDAO.findAll();
		usuarioDAO.closeTransaction();
		return usuario;
	}

	public void deleteUsuario(Usuario usuario) {
		usuarioDAO.beginTransaction();
		Usuario persistedUsuario = usuarioDAO.findReferenceOnly(usuario.getIdUsuario());
		usuarioDAO.delete(persistedUsuario);
		usuarioDAO.commitAndCloseTransaction();
	}
}
